package com.youme.tools.cg.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.youme.tools.cg.consts.DateTimeFormat;

public final class DateTimeUtil {
  DateTimeUtil() {}

  /**
   * 格式化日期时间成给定格式的字符串
   * 
   * @Title: formatDateTime
   * @Description: 格式化日期时间成给定格式的字符串
   * @param date 要格式化的时间对象
   * @param fmt 日期字符串格式<br/>
   *        强烈建议优先使用 com.zijinph.cdms.consts.DateTimeFormat 中定义的格式<br/>
   *        不传时，默认使用 yyyy-MM-dd 格式
   * @return String 格式化后的字符串
   */
  public static String formatDateTime(Date date, String fmt) {
    if (null == date) {
      return null;
    }
    if (StringUtil.isEmpty(fmt)) {
      fmt = DateTimeFormat.YYYY_MM_DD;
    }
    SimpleDateFormat sdf = new SimpleDateFormat(fmt);
    return sdf.format(date);
  }

  /**
   * 将字符串按特定格式转换成时间日期
   * 
   * @Title: parseDateTime
   * @Description: 将字符串按特定格式转换成时间日期
   * @param dateTimeStr 日期字符串
   * @param fmt 日期字符串格式<br/>
   *        强烈建议优先使用 com.zijinph.cdms.consts.DateTimeFormat 中定义的格式<br/>
   *        不传时，默认使用 yyyy-MM-dd 格式
   * @return Date 转换后的日期
   */
  public static Date parseDateTime(String dateTimeStr, String fmt) {
    if (StringUtil.isEmpty(dateTimeStr)) {
      return null;
    }
    if (StringUtil.isEmpty(fmt)) {
      fmt = DateTimeFormat.YYYY_MM_DD;
    }

    Date date = null;
    SimpleDateFormat sdf = new SimpleDateFormat(fmt);
    try {
      date = sdf.parse(dateTimeStr);
    } catch (ParseException e) {
    }
    return date;
  }

}
